package com.ccys.db.vo.app.splashscreen;

import com.ccys.db.vo.app.launchingTheApp.VersionVo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @program: WhiteCoat
 * @description: AppGetMasterData返回Vo
 * @author: ZhangJingCan
 * @create: 2024-01-13 17:35
 **/

@Data
public class GetMasterDataVo {

    /**
     * 热线电话
     * 系统参数key：Whc_hotline
     */
    private String hotline;

    /**
     * 已验证otp代码
     * 系统参数：verified_otp_code
     */
    @JsonProperty("verified_otp_code")
    private String verifiedOtpCode;//系统参数，这个名称就是key值

    /**
     * gst注册号
     * 系统参数：gst_reg_no
     */
    @JsonProperty("gst_reg_no")
    private String gstRegNo;

    /**
     * 是否有特快 - 快递
     */
    @JsonProperty("express_enable")
    private Boolean expressEnable;

    /**
     * 咨询费
     * consultant_fee = will get from tbl_Pricing_Timing (CMS -> Administrator -> Pricing And Timing)
     * logic = will check is holiday or normal day and timing in which country ([dbo].[fn_GetConfig_StandardFee](203) as consultant_fee) -> can refer the logic in fn_GetConfig_StandardFee
     */
    @JsonProperty("consultant_fee")
    private BigDecimal consultantFee;

    /**
     * 快递费
     */
    @JsonProperty("delivery_fee")
    private BigDecimal deliveryFee;

    /**
     * 是否允许补充药物 对方接口返回的是字符串的"True"
     */
    @JsonProperty("refill_medication_allow")
    private String refillMedicationAllow;

    /**
     * 补充药物费用
     * 取的系统参数:Refill_Medication_Fee catId = 2 ，对方的sql server的函数里面写的3，但是在系统参数没看到3
     */
    @JsonProperty("refill_medication_fee")
    private BigDecimal refillMedicationFee;

    /**
     * 是否为21岁的孩子,对方接口返回的是字符串的"False"
     */
    @JsonProperty("for_child_that_turned_21")
    private String forChildThatTurned21;

    /**
     * 突发事件
     * 示例值："emergency": {
     *             "status": false,
     *             "message": "We are currently updating our servers. Please try again later.",
     *             "redirect": "https://www.whitecoat.com.sg/"
     *         }
     *         系统参数里面的key为：
     *                  AppEmergency_Status
     *                  AppEmergency_Redirect_URL
     *                  AppEmergency_Message
     *                  cat_id 取4
     */
    private EmergencyMakeVo emergency;



    /**
     * App版本号返回对象 tbl_app_version 表，appType = 1
     */
    private VersionVo app_versions;

    /**
     * "app_contents": {
     * 			"terms-of-use": "https://whcapi-qa.whitecoat.global/v1/content/member/terms-of-use",
     * 			"privacy-policy": "https://whcapi-qa.whitecoat.global/v1/content/member/privacy-policy",
     * 			"about": "https://whcapi-qa.whitecoat.global/v1/content/member/about",
     * 			"faq": "https://whcapi-qa.whitecoat.global/v1/content/member/faq"
     *                }
     *                在GetMasterDataEnum枚举中的APP_CONTENTS
     */
    @JsonProperty("app_contents")
    private String appContents;



    /**
     * 用药周期集合
     */
    private List<MedicationUsagePeriodsMakeListVo> medication_usage_periods; //查询tbl_medication_usage_period 状态等于1并且未删除的集合

    /**
     * 药物反应集合
     */
    private List<MedicationUsagePeriodsMakeListVo> medication_reactions;//查询tbl_medication_reaction 表，状态为1并且未删除

    /**
     * 国家集合
     */
    private List<CountriesMakeVo> countries;//查询tbl_country 表的所有未删除的国家。

    /**
     * 快递时间段
     */
    private List<TimeslotMakeVo> timeslots;//查询tbl_delivery_time_slot 表的所有，未删除数据

    /**
     * 症状集合
     */
    private List<SymptomMakeVo> symptoms;//查询tbl_symptom 表所有，未删除数据

    /**
     * 家庭关系
     * 在枚举里面获取：GetMasterDataEnum.FAMILY_RELATIONSHIPS
     */
    @JsonProperty("family_relationships")
    private String familyRelationships;

    /**
     * 用药持续时间单位 json的字符串
     * 在枚举中取：GetMasterDataEnum.MEDICATION_DURATION_UNIT
     */
    @JsonProperty("medication_duration_unit")
    private String medicationDurationUnit;

    /**
     * 计量单位集合
     */
    private List<DosageUnitMakeVo> dosage_unit; //查询所有：tbl_unit_of_measurement

    /**
     * 示例值：pub-c-22b96ef2-3b97-426c-84f1-f1bd5ff51375     枚举获取，写死的
     */
    @JsonProperty("pubnub_pubkey")
    private String pubnubPubkey;

    /**
     * 示例值：sub-c-26cb397e-65f0-41c2-9c7b-63d386cd6a0b      枚举获取，写死的
     */
    @JsonProperty("pubnub_subkey")
    private String pubnubSubkey;

    /**
     * 问候语
     * 示例值：Welcome to WhiteCoat Text-Based mental wellness session, our certified mental health professional will be with you shortly. To get started, tell us how you are feeling today.
     * 取系统参数，key为：Textbased_Automated_Greeting_Tbtc catId为2
     */
    @JsonProperty("automated_greeting_tbtc")
    private String automatedGreetingTbtc;

    @JsonProperty("aia_eben_url")
    private String aiaEbenUrl;

    @JsonProperty("aia_eben_v1_url")
    private String aiaEbenV1Url;

    @JsonProperty("aia_eben_v2_url")
    private String aiaEbenV2Url;

    /**
     * AIA 授权，例如：Basic d2hpdGVjb2F0OnRlc3QxMjM0
     */
    @JsonProperty("aia_eben_authorization")
    private String aiaEbenAuthorization;

    /**
     * 套接字运行状况检查（秒）
     * 系统参数key：Socket_Health_Check_In_Seconds catId为1
     */
    @JsonProperty("socket_health_check_in_seconds")
    private Integer socketHealthCheckInSeconds;

    /**
     * 设置2FA 系统参数里面获取
     */
    @JsonProperty("settings_2FA")
    private Settings2FAMakeVo settings2FA;

    /**
     * 外部连接
     * 放在枚举中
     * 从headers里面取language
     * en
     * vi
     * id
     */
    @JsonProperty("external_link")
    private String externalLink;



}
